/**
 * AI图像生成API接口 (基于ai_image模块)
 * 只对接后端已实现的真实接口
 * 通过api.js拦截器统一管理请求
 */
import api from '@/utils/api'

export const imageApi = {
  // 图像生成 - 对应后端 POST /api/images/generate/
  generate: {
    // 创建图像生成任务
    create: (generationData) => api.post('/images/generate/', generationData),
  },

  // 图像管理 - 对应后端已实现的接口
  images: {
    // 获取图像列表 - 对应后端 GET /api/images/
    getList: (params = {}) => {
      const queryParams = {}
      if (params.page) queryParams.page = params.page
      if (params.page_size) queryParams.page_size = params.page_size
      if (params.status) queryParams.status = params.status
      if (params.user_id) queryParams.user_id = params.user_id
      
      return api.get('/images/', { params: queryParams })
    },
    
    // 获取图像详情 - 对应后端 GET /api/images/{id}/
    getDetail: (imageId) => api.get(`/images/${imageId}/`),
    
    // 删除图像 - 对应后端 DELETE /api/images/{id}/
    delete: (imageId) => api.delete(`/images/${imageId}/`),
  },

  // 图片代理服务 - 对应后端 GET /api/images/proxy/{id}/
  proxy: {
    // 获取图片数据
    getImage: (imageId) => api.get(`/images/proxy/${imageId}/`, {
      responseType: 'blob' // 返回二进制图片数据
    }),
    
    // 获取图片URL (用于直接在img标签中显示)
    getImageUrl: (imageId) => {
      const baseUrl = import.meta.env.VITE_BACKEND_BASE_URL || 'http://127.0.0.1:8000'
      return `${baseUrl}/api/images/proxy/${imageId}/`
    },
  }
}

/**
 * 便捷调用方法 - 直接导出各模块
 */
export const {
  generate,
  images,
  proxy
} = imageApi

/**
 * 使用示例：
 * 
 * // 生成图像
 * import { generate } from '@/api/image'
 * const result = await generate.create({
 *   prompt: "美丽的风景画",
 *   image_size: "1024x1024", 
 *   num_images: 1
 * })
 * 
 * // 获取图像列表
 * import { images } from '@/api/image'
 * const imageList = await images.getList({ 
 *   page: 1, 
 *   page_size: 10, 
 *   status: 'completed' 
 * })
 * 
 * // 获取图像详情
 * const imageDetail = await images.getDetail(123)
 * 
 * // 删除图像
 * await images.delete(123)
 * 
 * // 获取图片URL
 * import { proxy } from '@/api/image'
 * const imageUrl = proxy.getImageUrl(123)
 */

export default imageApi